package ar.edu.itba.it.cg.grupo01.api;

import ar.edu.itba.it.cg.grupo01.api.shape.Shape;

/**
 * Interface for the intersectable objects
 * 
 */
public interface Intersectable {

	/**
	 * Tests if the given {@link Ray ray} intersects this object
	 * 
	 * @param ray
	 *            to test for intersection
	 * @return {@link Intersection} containing all the information related to
	 *         the intersection
	 */
	Intersection<? extends Shape> intersects(final Ray ray);

}
